﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Zeus.Comunicaciones.Utilidades.Serializer
{
    public interface ISerializer
    {
        /// <summary>
        /// Deserializa una cadena a un objeto
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="data"></param>
        /// <returns></returns>
        T Deserialize<T>(string data);

        /// <summary>
        /// Serializa un objeto a una cadena en un metalenguaje determinado
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        string Serialize(object obj);

        /// <summary>
        /// Serializa un diccionario para emular el formato wrapper
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        string Serialize(Dictionary<string, object> dictionary);
    }
}
